using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.Profiling;

namespace Kayac
{
	public class TriangleParticleRenderer : MonoBehaviour
	{
		[StructLayout((LayoutKind)2)]
		private struct Vertex
		{
			[FieldOffset(0)]
			public Vector3 position;

			[FieldOffset(12)]
			public float radius;

			[FieldOffset(16)]
			public byte normalX;

			[FieldOffset(17)]
			public byte normalY;

			[FieldOffset(18)]
			public byte normalZ;

			[FieldOffset(19)]
			public byte normalW;

			[FieldOffset(20)]
			public byte colorR;

			[FieldOffset(21)]
			public byte colorG;

			[FieldOffset(22)]
			public byte colorB;

			[FieldOffset(23)]
			public byte colorA;
		}

		[SerializeField]
		private Camera camera;

		[SerializeField]
		private MeshRenderer renderer;

		[SerializeField]
		private MeshFilter meshFilter;

		private Mesh mesh;

		private Vertex[] vertices;

		private ushort[] indices;

		private Material material;

		private CustomSampler sampler;

		public Camera Camera => null;

		public bool Visible => false;

		public void ManualStart(IReadOnlyList<Vector3> worldPositions, IReadOnlyList<Color32> colors, IReadOnlyList<float> radii, Bounds bounds, Material overrideMaterial)
		{
		}

		public void Hide()
		{
		}

		public void Show()
		{
		}

		public void ManualUpdate(IReadOnlyList<Vector3> worldPositions, IReadOnlyList<Color32> colors, IReadOnlyList<float> radii)
		{
		}

		public void ManualUpdate()
		{
		}

		public void SetBounds(Bounds bounds)
		{
		}

		public Bounds CalcBounds(float maxDepth)
		{
			return default(Bounds);
		}

		public void UpdateVertices(IReadOnlyList<Vector3> worldPositions, IReadOnlyList<Color32> colors, IReadOnlyList<float> radii)
		{
		}

		private void InitMesh(IReadOnlyList<Vector3> worldPositions, IReadOnlyList<Color32> colors, IReadOnlyList<float> radii, Bounds bounds)
		{
		}

		private void UpdateMaterial()
		{
		}

		private void ApplyToMesh()
		{
		}

		private void UpdateTransform()
		{
		}
	}
}
